home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1993-08-18 | 3.8 KB | 79 lines |
- DEFINITION MODULE POSIX2;
- __DEF_SWITCHES__
- #ifdef HM2
- #ifdef __LONG_WHOLE__
- (*$!i+: Modul muss mit $i- uebersetzt werden! *)
- (*$!w+: Modul muss mit $w- uebersetzt werden! *)
- #else
- (*$!i-: Modul muss mit $i+ uebersetzt werden! *)
- (*$!w-: Modul muss mit $w+ uebersetzt werden! *)
- #endif
- #endif
- (*****************************************************************************)
- (* POSIX.2-Funktionen *)
- (* --------------------------------------------------------------------------*)
- (* 13-Aug-93, Holger Kleinschmidt *)
- (*****************************************************************************)
-
- (*========================= "fnmatch()" =====================================*)
-
- CONST
- FNMNoMatch = 1;
-
- TYPE
- FNMFlag = (
- FNMPathname, (* Wildcards ('*', '?') und Mengen ('[...]') ``matchen''
- * nicht ueber Verzeichnisgrenzen ('/') hinweg -> (Datei)Namen
- * werden durch '/.../' begrenzt.
- *)
- FNMPeriod, (* Wildcards ('*', '?') und Mengen ('[...]') ``matchen''
- * kein fuehrendes '.' bei (Datei)Namen.
- *)
- FNMNoEscape (* Das Zeichen 'ESCAPECHAR' hebt nicht die Spezialbedeutung
- * von '*', '?', '[', ']' (und ESCAPECHAR) auf.
- *)
- );
-
- FNMFlags = PACKEDSET OF FNMFlag;
-
- (* nicht POSIX: *)
- CONST
- ESCAPECHAR = 134C;
- INVERTCHAR = '!';
-
- (*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
-
- PROCEDURE fnmatch ((* EIN/ -- *) REF str : ARRAY OF CHAR;
- (* EIN/ -- *) REF pat : ARRAY OF CHAR;
- (* EIN/ -- *) flags : FNMFlags ): INTEGER;
-
- (*-------------------------------------------------------------------------
- | Testet, ob das Muster <pat> auf den String <str> passt (0 = passt). |
- | Die folgenden Zeichen haben im Muster eine Spezialbedeutung: |
- | |
- | '*': steht fuer beliebig viele (auch Null) Zeichen |
- | '?': steht fuer genau ein beliebiges Zeichen |
- | '[': Leitet eine Mengendefinition ein, d.h das korrespondierende|
- | Zeichen im String muss ein Zeichen aus dieser Menge sein. |
- | '-': Innerhalb einer Mengendefinition wird ein Bereich durch das|
- | unmittelbar davor und unmittelbar dahinter stehende Zeichen|
- | gebildet. Das korrespondierende Zeichen kann innerhalb und |
- | einschliesslich der Grenzen liegen. |
- | Als erstes oder letztes Element einer Menge steht es fuer |
- | sich selbst. |
- | ']': Beendet die Definition einer Menge; als erstes Element |
- | einer Menge oder ohne ein vorausgehendes, noch nicht abge- |
- | schlossenes '[', steht es fuer sich selbst. |
- | INVERTCHAR : Als erstes Zeichen einer Mengendefinition bedeutet es, dass|
- | das korrespondierende Zeichen im String KEIN Zeichen aus |
- | dieser Menge sein darf. |
- | ESCAPECHAR : Hebt die Sonderfunktion der obigen Zeichen und auch von |
- | sich selbst auf; die uebrigen Zeichen werden nicht beein- |
- | flusst. |
- | |
- | Mit <flags> kann die Interpretation der obigen Spezialzeichen beein- |
- | flusst werden (siehe Definition von 'FNMFlag'). |
- -------------------------------------------------------------------------*)
-
- END POSIX2.
-